package pers.lls.im.core.bootstrap.handler.base;

import pers.lls.im.core.common.bean.ChatMessage;
import io.netty.channel.Channel;

import java.util.Map;

/**
 * @author lihuan
 * @version V1.0 创建时间：2019/8/02
 * Copyright 2019 by landray & STIC
 */
public interface HandlerService extends Handler {


    /**
     * 登录校验
     *
     * @param channel     {@link Channel} 链接实例
     * @param chatMessage 会话对象
     * @return {@link Boolean} 成功失败
     */
    boolean registry(Channel channel, ChatMessage chatMessage);


    /**
     * 发送给某人
     *
     * @param channel {@link Channel} 链接实例
     * @param maps    {@link Map} 数据信息
     */
    void sendToOne(Channel channel, ChatMessage maps);

    /**
     * 发送给群聊
     *
     * @param channel {@link Channel} 链接实例
     * @param maps    {@link Map} 数据信息
     */
    void sendToGroup(Channel channel, ChatMessage maps);

    /**
     * 登录校验
     *
     * @param channel {@link Channel} 链接实例
     * @param maps    {@link Map} 数据信息
     */
    void verify(Channel channel, ChatMessage maps);

    /**
     * 获取用户未阅读的消息
     *
     * @param channel
     * @param chatMessage
     */
    void getUnreadMessage(Channel channel, ChatMessage chatMessage);

    boolean removeUnread(Channel channel, ChatMessage chatMessage);

}
